package com.nikkerball.apps.darkhorse.dao;

import com.nikkerball.apps.darkhorse.model.core.Classroom;
import com.nikkerball.apps.darkhorse.model.core.Learner;
import com.nikkerball.apps.darkhorse.model.core.Subject;
import com.nikkerball.apps.darkhorse.model.evaluation.EvaluationPeriod;
import com.nikkerball.apps.darkhorse.model.evaluation.subject.SubjectEvaluation;

import java.util.List;

/**
 * The Base Interface for the Model Data Access Methods
 *
 * @author marius
 *         <p/>
 *         Date: 21-Nov-2010
 *         Time: 16:09:08
 */

public interface ModelDao {

    // ----- public methods -----

    int getClassroomCount();

    List<Classroom> getClassroomList(int start, int count);

    int getEvaluationPeriodCount(EvaluationPeriod exampleEvaluationPeriod);

    List<EvaluationPeriod> getEvaluationPeriodList(EvaluationPeriod exampleEvaluationPeriod, int start,
            int count);

    int getLearnersCount(Learner exampleLearner);

    List<Learner> getLearnersList(Learner exampleLearner, int start, int count);

    int getSubjectCount(Subject exampleSubject);

    int getSubjectEvaluationCount(SubjectEvaluation exampleSubjectEvaluation);

    List<SubjectEvaluation> getSubjectEvaluationList(SubjectEvaluation exampleSubjectEvaluation, int start, int count);

    List<Subject> getSubjectList(Subject exampleSubject, int start, int count);


}
